package cn.platform.mapper;

import cn.platform.entity.StuHomework;
import cn.platform.response.StuHomeworkVO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

@Mapper
public interface StuHomeworkMapper {
    /**
     * 分页条件查询
     * @param map 查询条件map
     * @return 分页结果
     */
    Page<StuHomeworkVO> pageQuery(@Param("map") Map<String, Object> map);

    /**
     * 新增作业
     * @param stuHomework 作业实体
     */
    // 新增作业
    @Insert("INSERT INTO jxt_stu_how_act " +
            "(type, title, content, pub_id, class_id, subject, deadline, pub_time, update_time) " +
            "VALUES " +
            "(#{type}, #{title}, #{content}, #{pubId}, #{classId}, #{subject}, #{deadline}, #{pubTime}, #{updateTime})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    void insertHomework(StuHomework stuHomework);  // 改为返回int


    /**
     * 删除单条作业
     * @param id 作业ID
     */
    @Delete("DELETE FROM jxt_stu_how_act WHERE id = #{id}")
    void deleteById(String id);

    /**
     * 批量删除作业
     * @param ids 作业ID列表
     */
    void deleteBatch(List<Integer> ids);

    /**
     * 查看作业详情
     * @param id 作业ID
     * @return 作业详情
     */
    @Select("select * from jxt_stu_how_act where id=#{id}")
    StuHomework getById(String id);

    /**
     * 更新作业
     * @param stuHomework 作业实体
     */
    void updateHomework(StuHomework stuHomework);
}